package com.pro.framework.api.util;

import com.pro.framework.api.enums.IEnumInt;

/**
 * 枚举工具类
 */
public class BaseEnumUtil {

    /**
     * 根据值获取枚举实例（允许返回 null）
     */
    public static <T, E extends Enum<E> & IEnumInt> E fromValue(Class<E> enumClass, T value) {
        if (value == null) {
            return null;
        }
        for (E e : enumClass.getEnumConstants()) {
            if (value.equals(e.getValue())) {
                return e;
            }
        }
        return null;
    }
//
//    /**
//     * 根据值获取枚举实例（找不到则抛异常）
//     */
//    public static <T, E extends Enum<E> & IEnumValue<T>> E fromValueOrThrow(Class<E> enumClass, T value) {
//        E result = fromValue(enumClass, value);
//        if (result == null) {
//            throw new IllegalArgumentException("Unknown value '" + value + "' for enum " + enumClass.getSimpleName());
//        }
//        return result;
//    }
}
